package com.hivekion.common;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

import java.util.List;
import java.util.stream.Collectors;

/*
 * 一些公用的方法集
 * */
public class utils {
      /*
       * 取差集
       * */
      public static List<String> diffList(List<String> firstArrayList, List<String> secondArrayList) {
	    if (firstArrayList == null) {
		  return secondArrayList;
	    }
	    List<String> resultList =
		    firstArrayList.stream()
			    .filter(item -> !secondArrayList.contains(item))
			    .distinct()
			    .collect(Collectors.toList());
	    return resultList;
      }

      public static String getPinyin(String china) {
	    HanyuPinyinOutputFormat formart = new HanyuPinyinOutputFormat();
	    formart.setCaseType(HanyuPinyinCaseType.LOWERCASE);
	    formart.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
	    formart.setVCharType(HanyuPinyinVCharType.WITH_V);
	    char[] arrays = china.trim().toCharArray();
	    String result = "";
	    try {
		  for (int i = 0; i < arrays.length; i++) {
			char ti = arrays[i];
			if (Character.toString(ti).matches("[\\u4e00-\\u9fa5]")) { // 匹配是否是中文
			      String[] temp = PinyinHelper.toHanyuPinyinStringArray(ti, formart);
			      result += temp[0];
			} else {
			      result += ti;
			}
		  }
	    } catch (BadHanyuPinyinOutputFormatCombination e) {
		  e.printStackTrace();
	    }

	    return result;
      }
}
